#ifndef INCLUDE_H
#define INCLUDE_H

#include "compile\COMPILE_CONFIG.h"

#include "compile\platform.h"

//
// Include platform specific configuration files
#if (PLATFORM == PLATFORM_WIN32) && (COMPILER == COMPILER_MSVC)
#	include <compile/includeVC.h>
#elif (PLATFORM == PLATFORM_WIN32) && (COMPILER == COMPILER_GNUC)
#	include <compile/includeGCCWin.h>
#elif (PLATFORM == PLATFORM_LINUX) && (COMPILER == COMPILER_GNUC)
#	include <compile/includeGCC.h>
#else
#	error("No configuration file set for the selected platform/compiler!")
#endif


//CRT
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cstdarg>
#include <cctype>
#include <cassert>
#include <iostream>
#include <sstream>
#include <new>
#include <cmath>
#include <ctime>
#include <limits>


//STL
#include <memory>
#include <string>
#include <stdexcept>
#include <locale>
#include <algorithm>
#include <functional>
#include <vector>
#include <map>
#include <list>
#include <queue>
#include <set>

#ifdef __SGI_STL
#	include <iterator>
#endif

//BOOST
#include <boost/noncopyable.hpp>
#include <boost/shared_ptr.hpp>
#include <fastsig/fastsig.hpp>
#ifdef RUN_TESTS
	//#include <boost/test/minimal.hpp>
	#define BOOST_TEST_NO_LIB
	#include <boost/test/auto_unit_test.hpp>
	#include <boost/test/unit_test_suite.hpp>
	#include <boost/test/test_tools.hpp>
#endif


//GUI
#ifdef USE_QT
    #include <QtCore/Qt>
    #include <QtGUI/QApplication>
    #include <QtGUI/QPushButton>
    #include <QTGUI/QPainter>
    #include <QtGUI/QGraphicsView>
    #include <QtGUI/QPaintEvent>

#elif defined USE_WXW
    #include <wx/wxprec.h>
    #include <wx/wx.h>

#endif




//COMMON
#include "common\native.h"
#include "common\utils.h"
#include "common\vector.h"


//BASE
#include "base\property.h"
#include "base\component.h"
#include "base\entity.h"


//SERVICE
#include "service\system.h"






#endif //INCLUDE_H

